#ifndef CELLCOORDINATE_H_
#define CELLCOORDINATE_H_

#include "BaseCoordinate.h"
#include "CoordinateX.h"
#include "CoordinateY.h"
#include "VerticalCardinal.h"
#include "HorizontalCardinal.h"

namespace catan
{

class CellCoordinate : public BaseCoordinate
{
public:
	static bool canInit(CoordinateX coordinateX, CoordinateY coordinateY);
	
	CellCoordinate(CoordinateX coordinateX, CoordinateY coordinateY);
	bool canCreateNeighbor(VerticalCardinal verticalCardinal) const;
	CellCoordinate createNeighbor(VerticalCardinal verticalCardinal) const;
	bool isOnGameMapEdge(HorizontalCardinal horizontalCardinal) const;
	bool operator==(const CellCoordinate &other) const;
	bool operator<(const CellCoordinate &other) const;
	CellCoordinate& operator=(const CellCoordinate& other);

};

}

#endif /*CELLCOORDINATE_H_*/
